package com.cqut.util;

import java.util.HashMap;
import java.util.Map;


/**
 * 系统常量
 * @author zzk
 * */
public class SystemConstants {
	
	/**
	 * 学生基础角色id
	 * */
	public static final String ST_ROLE_ID = "0001";
	
	/**
	 * 系统操作员基础角色id
	 * */
	public static final String OP_ROLE_ID = "0002";
	
	/**
	 * 评委基础角色id
	 * */
	public static final String JD_ROLE_ID = "0003";
	
	
	/**
	 * 竞赛管理员
	 */
	public static final String CP_ROLE_ID = "0004";
	
	/**
	 * 以角色id为键，角色类型为值的map
	 * */
	public static final Map<String, String> ROLE_TYPES = new HashMap<String, String>();
	
	/**
	 * 学生角色类型
	 * */
	public static final String ST_ROLE_TYPE = "ST";
	
	/**
	 * 操作员角色类型
	 * */
	public static final String OP_ROLE_TYPE = "OP";
	
	/**
	 * 评委角色类型
	 * */
	public static final String JD_ROLE_TYPE = "JD";
	
	/**
	 * 竞赛管理员角色类型
	 * */
	public static final String CP_ROLE_TYPE = "CP";
	
	
	/**
	 * 标注为基础角色
	 * */
	public static final Byte BASE_ROLE_TYPE = 0;
	
	/**
	 * 标注为用户新增的额外角色
	 * */
	public static final Byte EXTRA_ROLE_TYPE = 1;
	
	/**
	 * 以角色类型为键，角色id为值的map
	 * */
	public static final Map<String, String> ROLE_IDS = new HashMap<String, String>();
	
	
	// 初始化roleids与roletypes
	static {
		ROLE_TYPES.put(ST_ROLE_ID, ST_ROLE_TYPE);
		ROLE_IDS.put(ST_ROLE_TYPE, ST_ROLE_ID);
		
		ROLE_TYPES.put(OP_ROLE_ID, OP_ROLE_TYPE);
		ROLE_IDS.put(OP_ROLE_TYPE, OP_ROLE_ID);
		
		ROLE_TYPES.put(JD_ROLE_ID, JD_ROLE_TYPE);
		ROLE_IDS.put(JD_ROLE_TYPE, JD_ROLE_ID);
		
		ROLE_TYPES.put(CP_ROLE_ID, CP_ROLE_TYPE);
		ROLE_IDS.put(CP_ROLE_TYPE, CP_ROLE_ID);
		
	}
	
	/**
	 * 根据角色类型获取角色id
	 * */
	public static String getRoleId(String roleType) {
		return ROLE_IDS.get(roleType);
	}
	
	/**
	 * 根据角色id获取角色类型
	 * */
	public static String getRoleType(String roleId) {
		return ROLE_TYPES.get(roleId);
	}
	
	
	/**
	 * 当前用户id的键
	 * */
	public static final String CUR_USER_ID_KEY = "curUserid";
	
	
	/**
	 * 当前用户类型的键
	 * */
	public static final String CUR_ROLE_TYPE_KEY = "curRoleType";
	
	/**
	 * 当前用户所属组织结构的键
	 * */
	public static final String CUR_ORG_ID_KEY = "curOrgId";
	
	/**
	 * 当前用户所属组织结构的code
	 * */
	public static final String CUR_ORG_CODE_KEY = "curOrgCode";
	
	/**
	 * 标注权限分配中，拥有者类型为角色
	 * */
	public static final String OWNER_TYPE_IN_PA_IS_ROLE = "123";
	
	/**
	 * 标注权限分配中，拥有者类型为组织结构
	 * */
	public static final String OWNER_TYPE_IN_PA_IS_ORG = "456";
	
	/**
	 * 用于区分数据库中值为0或1的字段，包括是否有下级、是否有效等等
	 * */
	public static final Byte FALSE_0 = 0;
	
	public static final Byte TRUE_1 = 1;
	
	/**
	 * 四个顶层结构的code值
	 * */
	/**
	 * student
	 * */
	public static final String ST_ORG_CODE = "00000001";
	
	/**
	 * operator
	 * */
	public static final String OP_ORG_CODE = "00000002";
	
	/**
	 * judger
	 * */
	public static final String JD_ORG_CODE = "00000003";
	
	/**
	 * competitionOperator
	 * */
	public static final String CP_ORG_CODE = "00000004";
	
	/**
	 * 初始密码
	 * */
	public static final String INIT_PASSWORD = "123456";
	
	
	/**
	 * 标注操作类型为新增
	 * */
	public static final byte ADD_OP_TYPE = 0;
	
	/**
	 * 标注操作类型为更新
	 * */
	public static final byte UPDATE_OP_TYPE = 1;
	
	/**
	 * 车辆状态值
	 * */
	
	/**
	 * 可用状态
	 * */
	public static final String AVAILABLE_STATE_FOR_VEHICLE = "2";
	
	public static final String LEASEUSER_ORGCODE = "00000003";
	
	public static final int LEVEL0 = 2;
	
	/**
	 * 通知类型
	 * */
	
	/**
	 * 一般通知类型
	 * */
	public static final String COMMON_NOTICE_TYPE = "0000000100000001";
	
	/**
	 * 紧急通知类型
	 * */
	public static final String URGENCY_NOTICE_TYPE = "0000000100000002";
	
	/**
	 * 超级管理员的uid
	 * */
	public static final String ADMIN_UID = "2623502869319762";

	public static final Byte INIT_STATE = 1;
}

















